From cd1496c790bc383db7cddee5e9d67297dc56a167 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild.aw" Date: Fri, 1 Dec 2006 11:12:00 -0700 Subject: [PATCH] [IA64] Check CPL for break 0x80001 case This is a patch which intends for fixing ltrace problem. When I execute a command "ltrace ps" on dom0, it makes dom0 hung. It comes from "break 0x80001" is shared by ltrace(CPL=3) and hpsim(CPL=2). To avoid this problem, I just add check CPL in ia64_break_fault code. Signed-off-by: Atsushi SAKAI --- xen/arch/ia64/xen/faults.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xen/arch/ia64/xen/faults.c b/xen/arch/ia64/xen/faults.c index 05aea16fc2..741800fa70 100644 --- a/xen/arch/ia64/xen/faults.c +++ b/xen/arch/ia64/xen/faults.c @@ -524,7 +524,9 @@ ia64_handle_break(unsigned long ifa, struct pt_regs *regs, unsigned long isr, struct vcpu *v = current; IA64FAULT vector; - if (iim == 0x80001 || iim == 0x80002) { //FIXME: don't hardcode constant + /* FIXME: don't hardcode constant */ + if ((iim == 0x80001 || iim == 0x80002) + && ia64_get_cpl(regs->cr_ipsr) == 2) { do_ssc(vcpu_get_gr(current, 36), regs); } #ifdef CRASH_DEBUG -- 2.30.2